import React from 'react';
import { Navigate } from 'react-router-dom';
import { Result, Button } from 'antd';

// 权限守卫组件
const PermissionGuard = ({ children, requiredPermission }) => {
  // 获取当前用户信息
  const getUserInfo = () => {
    try {
      const userInfo = localStorage.getItem('adminUser');
      return userInfo ? JSON.parse(userInfo) : null;
    } catch (error) {
      console.error('解析用户信息失败', error);
      return null;
    }
  };

  const user = getUserInfo();

  // 如果没有用户信息，重定向到登录页
  if (!user) {
    return <Navigate to="/admin/login" replace />;
  }

  // 检查用户是否有所需权限
  const hasPermission = () => {
    if (!user.permissions) return false;
    return user.permissions.includes(requiredPermission);
  };

  // 如果没有权限，显示403页面
  if (!hasPermission()) {
    return (
      <div style={{
        height: '100%',
        display: 'flex',
        alignItems: 'center',
        justifyContent: 'center'
      }}>
        <Result
          status="403"
          title="403"
          subTitle="抱歉，您没有权限访问此页面。"
          extra={
            <Button type="primary" onClick={() => window.history.back()}>
              返回上一页
            </Button>
          }
        />
      </div>
    );
  }

  // 有权限，渲染子组件
  return children;
};

export default PermissionGuard; 